Breakme by K3310pH jest wyjatkowo niewdzicznym obiektem do amania. Gwnie z powodu swojego podstawowego zabezpieczenia. Poniewa zanezpieczenie to dziaa pod Win 98, dla wiekszoci jest ju raczej archaiczn ciekawostk. NIestety nie wiem jakie byy wczeniejsze prby amania tego cma i jak daleko kto zaszed. Ale do rzeczy.
Breakme nie jest niczym spakowane. Zaczyna si od typowych instrukcji, w ktre jednak wplecione s inne przygotowujce antydebuggung.

0040115B      0F010D FD8040>SIDT FWORD PTR DS:[4080FD]             <----- pobranie IDT
00401162  |.  C745 F0 10000>MOV DWORD PTR SS:[EBP-10],10
00401169  |.  C745 F8 7C804>MOV DWORD PTR SS:[EBP-8],breakme.0040807>
00401170  |.  68 007F0000   PUSH 7F00                                
00401175  |.  6A 00         PUSH 0                                 
00401177  |.  E8 B20E0000   CALL <JMP.&USER32.LoadIconA>             
0040117C  |.  8945 E8       MOV DWORD PTR SS:[EBP-18],EAX
0040117F  |.  8945 FC       MOV DWORD PTR SS:[EBP-4],EAX
00401182      A1 FF804000   MOV EAX,DWORD PTR DS:[4080FF]
00401187      8B58 08       MOV EBX,DWORD PTR DS:[EAX+8]  <-----------   ustalenie adresu przerwania int 1
0040118A      891D 03814000 MOV DWORD PTR DS:[408103],EBX
00401190      8B58 0C       MOV EBX,DWORD PTR DS:[EAX+C]   <----------------- i  selektora od int 1 
00401193      891D 07814000 MOV DWORD PTR DS:[408107],EBX

Nastpnie podmieniony zostaje wektor przerwania. POniewa jest przerwanie INt 1, pojawiaj si problemy z debuggingiem przy pracy krokowej (nawet zakadanie puapek nie pomagao zwaszcza e jeszcze wtedy nie bardzo wiedziaem co z tym zrobi ;-)).


004011CA  |.  B8 0A000000   MOV EAX,0A
004011CF      8B35 FF804000 MOV ESI,DWORD PTR DS:[4080FF]
004011D5      83C0 0A       ADD EAX,0A
004011D8      68 2A144000   PUSH breakme.0040142A               <------------ nowy adres obsugi przerwania int 1
004011DD      83EE 28       SUB ESI,28
004011E0      66:8F4446 08  POP WORD PTR DS:[ESI+EAX*2+8]       <-----------------podmiana wektora przerwa
004011E5      66:8F4446 0E  POP WORD PTR DS:[ESI+EAX*2+E]
004011EA      F1            INT1				<---------------- wywoanie przerwania int 1


Poniewa adres obsugi zosta podmieniony, po wywolaniu przerwania crackme przechodzi w ring 0 (dlatego dziaa tylko w WIn 98) i wykonuje nastpujcy kod ( wystepuj w nim VXDCall'e wic moze by wykonany tylko w tym systemie i tylko w trybie ring 0).

0040142A   .  68 7C000000   PUSH 7C
0040142F      CD20 0D004000 VxDCall IFSMGR_GetHeap               <---------------- zaalokowanie pamici
00401435      5F            POP EDI
00401436   .  8BF8          MOV EDI,EAX
00401438   .  57            PUSH EDI
00401439   .  8D35 AE134000 LEA ESI,DWORD PTR DS:[4013AE]	<--------------- adres do danych
0040143F   .  B9 7C000000   MOV ECX,7C
00401444   .  33C0          XOR EAX,EAX
00401446   >  AC            LODS BYTE PTR DS:[ESI]
00401447   .  BA 00104000   MOV EDX,breakme.00401000		<-------------- adres do tabeli danych
0040144C   .  8A0402        MOV AL,BYTE PTR DS:[EDX+EAX]
0040144F   .  AA            STOS BYTE PTR ES:[EDI]
00401450   .^ E2 F4         LOOPD SHORT breakme.00401446
00401452   .  5F            POP EDI
00401453   .  893D 13814000 MOV DWORD PTR DS:[408113],EDI	<----------------bufor dla danych  po przetworzeniu
00401459   .  68 00000100   PUSH 10000                              
0040145E      CD20 0D004000 VxDCall IFSMGR_GetHeap		<---------------- znow alokacja pamici
00401464      5F            POP EDI
00401465      A3 0B814000   MOV DWORD PTR DS:[40810B],EAX
0040146A      68 A6130000   PUSH 13A6
0040146F      CD20 0D004000 VxDCall IFSMGR_GetHeap		<---------------kolejna alokacja
00401475      5F            POP EDI
00401476   .  A3 0F814000   MOV DWORD PTR DS:[40810F],EAX
0040147B   .  FF35 0B814000 PUSH DWORD PTR DS:[40810B]
00401481   .  68 500B0000   PUSH 0B50
00401486   .  68 A7144000   PUSH breakme.004014A7
0040148B   .  50            PUSH EAX
0040148C   .  FF15 13814000 CALL NEAR DWORD PTR DS:[408113]	<------ skok do miejsca gdzie zostay umieszczone dane
00401492      8B35 FF804000 MOV ESI,DWORD PTR DS:[4080FF]
00401498      FF35 0F814000 PUSH DWORD PTR DS:[40810F]		<------- nowy adres dla przerwania int 1
0040149E      66:8F46 08    POP WORD PTR DS:[ESI+8]		<--------do tablicy przerwa
004014A2      66:8F46 0E    POP WORD PTR DS:[ESI+E]
004014A6      CF            IRETD				<---- powrt z ring 0 i z przerwania


Co robi ten kawaek kodu? Pokrtce, alokuje 3 obszary pamici, po czym zgodnie z algorytmem pobiera dane z [4013AE], przetwarza i na podstawie wyniku wybiera bajty z tabeli od 401000 do 4010FF. W ten sposb powstaje nowy element kodu, do ktrego zostajemy przeniesieni CALL NEAR DWORD PTR DS:[408113].


0014C4A8    2BC0            SUB EAX,EAX
0014C4AA    60              PUSHAD
0014C4AB    8BEC            MOV EBP,ESP
0014C4AD    23C8            AND ECX,EAX
0014C4AF    8B7D 30         MOV EDI,DWORD PTR SS:[EBP+30]
0014C4B2    FC              CLD
0014C4B3    B5 40           MOV CH,40
0014C4B5    57              PUSH EDI
0014C4B6    F3:AB           REP STOS DWORD PTR ES:[EDI]
0014C4B8    8B75 28         MOV ESI,DWORD PTR SS:[EBP+28]
0014C4BB    93              XCHG EAX,EBX
0014C4BC    034D 2C         ADD ECX,DWORD PTR SS:[EBP+2C]
0014C4BF    66:AD           LODS WORD PTR DS:[ESI]
0014C4C1    8B7D 24         MOV EDI,DWORD PTR SS:[EBP+24]
0014C4C4    83C1 FA         ADD ECX,-6
0014C4C7    5D              POP EBP
0014C4C8    AD              LODS DWORD PTR DS:[ESI]
0014C4C9    92              XCHG EAX,EDX
0014C4CA    F64424 1C 07    TEST BYTE PTR SS:[ESP+1C],7
0014C4CF    75 18           JNZ SHORT 0014C4E9
0014C4D1    D1CA            ROR EDX,1
0014C4D3    E3 43           JECXZ SHORT 0014C518
0014C4D5    73 06           JNB SHORT 0014C4DD
0014C4D7    81F2 3E7C042C   XOR EDX,2C047C3E
0014C4DD    AC              LODS BYTE PTR DS:[ESI]
0014C4DE    49              DEC ECX
0014C4DF    81F2 B357C15A   XOR EDX,5AC157B3
0014C4E5    1AC2            SBB AL,DL
0014C4E7    8AE0            MOV AH,AL
0014C4E9    D0E4            SHL AH,1
0014C4EB    FE4424 1C       INC BYTE PTR SS:[ESP+1C]
0014C4EF    73 1A           JNB SHORT 0014C50B
0014C4F1    D1CA            ROR EDX,1
0014C4F3    E3 23           JECXZ SHORT 0014C518
0014C4F5    72 06           JB SHORT 0014C4FD
0014C4F7    81F2 3E7C042C   XOR EDX,2C047C3E
0014C4FD    AC              LODS BYTE PTR DS:[ESI]
0014C4FE    49              DEC ECX
0014C4FF    81F2 8D2BC576   XOR EDX,76C52B8D
0014C505    1AC2            SBB AL,DL
0014C507    88441D 00       MOV BYTE PTR SS:[EBP+EBX],AL
0014C50B    8A441D 00       MOV AL,BYTE PTR SS:[EBP+EBX]
0014C50F    8AFB            MOV BH,BL
0014C511    AA              STOS BYTE PTR ES:[EDI]
0014C512    8AD8            MOV BL,AL
0014C514  ^ EB B4           JMP SHORT 0014C4CA
0014C516    4A              DEC EDX
0014C517    51              PUSH ECX
0014C518    2B7C24 24       SUB EDI,DWORD PTR SS:[ESP+24]
0014C51C    897C24 1C       MOV DWORD PTR SS:[ESP+1C],EDI
0014C520    61              POPAD
0014C521    C2 1000         RETN 10


Jak mona si spodziewa ten kawaek odszyfrowuje nastpny kawaek kodu. Naprawde nie rozszyfrowywaem tu algorytmu, bo jest zbyt skomplikowanu dla mnie. Do powiedzie e nowy kod zostaje umieszczony w trzecim alokowanym obszarze pamici.
Po powrocie z calla, wasnie na ten obszar zostaje ustawiony, wektor obsugi przerwania int 1 i program powraca z przerwania do ring 3.
Dalej zaczyna sie tworzenie okienka, obsuga komunikatow itd.
Najciekawsze dopiero przed nami. Po pobraniu zawartoci okienka edycyjnego wykonany zostaje nastpujcy kod:


00401311  |.  FF75 08       PUSH DWORD PTR SS:[EBP+8]                ; |hWnd
00401314  |.  E8 FD0C0000   CALL <JMP.&USER32.GetDlgItemTextA>       ; \GetDlgItemTextA
00401319  |.  58            POP EAX
0040131A  |.  66:2D B90B    SUB AX,0BB9					
0040131E  |.  9C            PUSHFD
0040131F  |.  5A            POP EDX				<-----------sprawdzenie obsugi przycisku
00401320  |.  66:85C0       TEST AX,AX
00401323  |.  75 3C         JNZ SHORT breakme.00401361
00401325  |.  0F94C0        SETE AL
00401328  |.  0AF0          OR DH,AL				
0040132A  |.  52            PUSH EDX
0040132B  |.  8D15 20814000 LEA EDX,DWORD PTR DS:[408120]        <---------edx wskazuje na bufor z wpisanym tekstem
00401331      9D            POPFD                                <---------------ustawienie traplagi
00401332      90            NOP					<----------Singlestep wywouje int 1
00401333      85C0          TEST EAX,EAX

Jak wida ustawiona zostaje flaga TF co wymusza prace krokow i przerwanie int 1. POniewa mamy ustawiony adres obsugi przerwania na nasz tajemniczy kawaek kodu, to program przechodzi w ring 0 i wykonuje ten kod.
Co wraliwszych przestrzegam e poniszy kod jest baaardzo dugi, ale niestety tak wymyslil autor.




jeszcze lepszy kod :hehehe

0015DE00    33C9            XOR ECX,ECX
0015DE02    0BC9            OR ECX,ECX
0015DE04    75 08           JNZ SHORT 0015DE0E
0015DE06    8D1D 00704000   LEA EBX,DWORD PTR DS:[407000]
0015DE0C    EB 61           JMP SHORT 0015DE6F
0015DE0E    83F9 01         CMP ECX,1
0015DE11    75 08           JNZ SHORT 0015DE1B
0015DE13    8D1D 04704000   LEA EBX,DWORD PTR DS:[407004]
0015DE19    EB 54           JMP SHORT 0015DE6F
0015DE1B    83F9 02         CMP ECX,2
0015DE1E    75 08           JNZ SHORT 0015DE28
0015DE20    8D1D 08704000   LEA EBX,DWORD PTR DS:[407008]
0015DE26    EB 47           JMP SHORT 0015DE6F
0015DE28    83F9 03         CMP ECX,3
0015DE2B    75 08           JNZ SHORT 0015DE35
0015DE2D    8D1D 0C704000   LEA EBX,DWORD PTR DS:[40700C]
0015DE33    EB 3A           JMP SHORT 0015DE6F
0015DE35    83F9 04         CMP ECX,4
0015DE38    75 08           JNZ SHORT 0015DE42
0015DE3A    8D1D 10704000   LEA EBX,DWORD PTR DS:[407010]
0015DE40    EB 2D           JMP SHORT 0015DE6F
0015DE42    83F9 05         CMP ECX,5
0015DE45    75 08           JNZ SHORT 0015DE4F
0015DE47    8D1D 14704000   LEA EBX,DWORD PTR DS:[407014]
0015DE4D    EB 20           JMP SHORT 0015DE6F
0015DE4F    83F9 06         CMP ECX,6
0015DE52    75 08           JNZ SHORT 0015DE5C
0015DE54    8D1D 18704000   LEA EBX,DWORD PTR DS:[407018]
0015DE5A    EB 13           JMP SHORT 0015DE6F
0015DE5C    83F9 07         CMP ECX,7
0015DE5F    75 08           JNZ SHORT 0015DE69
0015DE61    8D1D 1C704000   LEA EBX,DWORD PTR DS:[40701C]
0015DE67    EB 06           JMP SHORT 0015DE6F
0015DE69    8D1D 20704000   LEA EBX,DWORD PTR DS:[407020]
0015DE6F    8A240A          MOV AH,BYTE PTR DS:[EDX+ECX]
0015DE72    80FC 41         CMP AH,41
0015DE75    75 0B           JNZ SHORT 0015DE82
0015DE77    C703 2B000000   MOV DWORD PTR DS:[EBX],2B
0015DE7D    E9 07020000     JMP 0015E089
0015DE82    80FC 42         CMP AH,42
0015DE85    75 0B           JNZ SHORT 0015DE92
0015DE87    C703 53000000   MOV DWORD PTR DS:[EBX],53
0015DE8D    E9 F7010000     JMP 0015E089
0015DE92    80FC 43         CMP AH,43
0015DE95    75 0B           JNZ SHORT 0015DEA2
0015DE97    C703 6D000000   MOV DWORD PTR DS:[EBX],6D
0015DE9D    E9 E7010000     JMP 0015E089
0015DEA2    80FC 44         CMP AH,44
0015DEA5    75 0B           JNZ SHORT 0015DEB2
0015DEA7    C703 1D000000   MOV DWORD PTR DS:[EBX],1D
0015DEAD    E9 D7010000     JMP 0015E089
0015DEB2    80FC 45         CMP AH,45
0015DEB5    75 0B           JNZ SHORT 0015DEC2
0015DEB7    C703 3B000000   MOV DWORD PTR DS:[EBX],3B
0015DEBD    E9 C7010000     JMP 0015E089
0015DEC2    80FC 46         CMP AH,46
0015DEC5    75 0B           JNZ SHORT 0015DED2
0015DEC7    C703 61000000   MOV DWORD PTR DS:[EBX],61
0015DECD    E9 B7010000     JMP 0015E089
0015DED2    80FC 47         CMP AH,47
0015DED5    75 0B           JNZ SHORT 0015DEE2
0015DED7    C703 0B000000   MOV DWORD PTR DS:[EBX],0B
0015DEDD    E9 A7010000     JMP 0015E089
0015DEE2    80FC 48         CMP AH,48
0015DEE5    75 0B           JNZ SHORT 0015DEF2
0015DEE7    C703 13000000   MOV DWORD PTR DS:[EBX],13
0015DEED    E9 97010000     JMP 0015E089
0015DEF2    80FC 49         CMP AH,49
0015DEF5    75 0B           JNZ SHORT 0015DF02
0015DEF7    C703 25000000   MOV DWORD PTR DS:[EBX],25
0015DEFD    E9 87010000     JMP 0015E089
0015DF02    80FC 4A         CMP AH,4A
0015DF05    75 0B           JNZ SHORT 0015DF12
0015DF07    C703 43000000   MOV DWORD PTR DS:[EBX],43
0015DF0D    E9 77010000     JMP 0015E089
0015DF12    80FC 4B         CMP AH,4B
0015DF15    75 0B           JNZ SHORT 0015DF22
0015DF17    C703 49000000   MOV DWORD PTR DS:[EBX],49
0015DF1D    E9 67010000     JMP 0015E089
0015DF22    80FC 4C         CMP AH,4C
0015DF25    75 0B           JNZ SHORT 0015DF32
0015DF27    C703 03000000   MOV DWORD PTR DS:[EBX],3
0015DF2D    E9 57010000     JMP 0015E089
0015DF32    80FC 4D         CMP AH,4D
0015DF35    75 0B           JNZ SHORT 0015DF42
0015DF37    C703 7F000000   MOV DWORD PTR DS:[EBX],7F
0015DF3D    E9 47010000     JMP 0015E089
0015DF42    80FC 4E         CMP AH,4E
0015DF45    75 0B           JNZ SHORT 0015DF52
0015DF47    C703 47000000   MOV DWORD PTR DS:[EBX],47
0015DF4D    E9 37010000     JMP 0015E089
0015DF52    80FC 4F         CMP AH,4F
0015DF55    75 0B           JNZ SHORT 0015DF62
0015DF57    C703 4F000000   MOV DWORD PTR DS:[EBX],4F
0015DF5D    E9 27010000     JMP 0015E089
0015DF62    80FC 50         CMP AH,50
0015DF65    75 0B           JNZ SHORT 0015DF72
0015DF67    C703 59000000   MOV DWORD PTR DS:[EBX],59
0015DF6D    E9 17010000     JMP 0015E089
0015DF72    80FC 51         CMP AH,51
0015DF75    75 0B           JNZ SHORT 0015DF82
0015DF77    C703 1F000000   MOV DWORD PTR DS:[EBX],1F
0015DF7D    E9 07010000     JMP 0015E089
0015DF82    80FC 52         CMP AH,52
0015DF85    75 0B           JNZ SHORT 0015DF92
0015DF87    C703 0D000000   MOV DWORD PTR DS:[EBX],0D
0015DF8D    E9 F7000000     JMP 0015E089
0015DF92    80FC 53         CMP AH,53
0015DF95    75 0B           JNZ SHORT 0015DFA2
0015DF97    C703 29000000   MOV DWORD PTR DS:[EBX],29
0015DF9D    E9 E7000000     JMP 0015E089
0015DFA2    80FC 54         CMP AH,54
0015DFA5    75 0B           JNZ SHORT 0015DFB2
0015DFA7    C703 3D000000   MOV DWORD PTR DS:[EBX],3D
0015DFAD    E9 D7000000     JMP 0015E089
0015DFB2    80FC 55         CMP AH,55
0015DFB5    75 0B           JNZ SHORT 0015DFC2
0015DFB7    C703 05000000   MOV DWORD PTR DS:[EBX],5
0015DFBD    E9 C7000000     JMP 0015E089
0015DFC2    80FC 57         CMP AH,57
0015DFC5    75 0B           JNZ SHORT 0015DFD2
0015DFC7    C703 7B000000   MOV DWORD PTR DS:[EBX],7B
0015DFCD    E9 B7000000     JMP 0015E089
0015DFD2    80FC 58         CMP AH,58
0015DFD5    75 0B           JNZ SHORT 0015DFE2
0015DFD7    C703 89000000   MOV DWORD PTR DS:[EBX],89
0015DFDD    E9 A7000000     JMP 0015E089
0015DFE2    80FC 59         CMP AH,59
0015DFE5    75 0B           JNZ SHORT 0015DFF2
0015DFE7    C703 17000000   MOV DWORD PTR DS:[EBX],17
0015DFED    E9 97000000     JMP 0015E089
0015DFF2    80FC 5A         CMP AH,5A
0015DFF5    75 0B           JNZ SHORT 0015E002
0015DFF7    C703 11000000   MOV DWORD PTR DS:[EBX],11
0015DFFD    E9 87000000     JMP 0015E089
0015E002    80FC 30         CMP AH,30
0015E005    75 08           JNZ SHORT 0015E00F
0015E007    C703 02000000   MOV DWORD PTR DS:[EBX],2
0015E00D    EB 7A           JMP SHORT 0015E089
0015E00F    80FC 31         CMP AH,31
0015E012    75 08           JNZ SHORT 0015E01C
0015E014    C703 2F000000   MOV DWORD PTR DS:[EBX],2F
0015E01A    EB 6D           JMP SHORT 0015E089
0015E01C    80FC 32         CMP AH,32
0015E01F    75 08           JNZ SHORT 0015E029
0015E021    C703 65000000   MOV DWORD PTR DS:[EBX],65
0015E027    EB 60           JMP SHORT 0015E089
0015E029    80FC 33         CMP AH,33
0015E02C    75 08           JNZ SHORT 0015E036
0015E02E    C703 6F000000   MOV DWORD PTR DS:[EBX],6F
0015E034    EB 53           JMP SHORT 0015E089
0015E036    80FC 34         CMP AH,34
0015E039    75 08           JNZ SHORT 0015E043
0015E03B    C703 07000000   MOV DWORD PTR DS:[EBX],7
0015E041    EB 46           JMP SHORT 0015E089
0015E043    80FC 35         CMP AH,35
0015E046    75 08           JNZ SHORT 0015E050
0015E048    C703 35000000   MOV DWORD PTR DS:[EBX],35
0015E04E    EB 39           JMP SHORT 0015E089
0015E050    80FC 36         CMP AH,36
0015E053    75 08           JNZ SHORT 0015E05D
0015E055    C703 6B000000   MOV DWORD PTR DS:[EBX],6B
0015E05B    EB 2C           JMP SHORT 0015E089
0015E05D    80FC 37         CMP AH,37
0015E060    75 08           JNZ SHORT 0015E06A
0015E062    C703 67000000   MOV DWORD PTR DS:[EBX],67
0015E068    EB 1F           JMP SHORT 0015E089
0015E06A    80FC 38         CMP AH,38
0015E06D    75 08           JNZ SHORT 0015E077
0015E06F    C703 71000000   MOV DWORD PTR DS:[EBX],71
0015E075    EB 12           JMP SHORT 0015E089
0015E077    80FC 39         CMP AH,39
0015E07A    75 08           JNZ SHORT 0015E084
0015E07C    C703 83000000   MOV DWORD PTR DS:[EBX],83
0015E082    EB 05           JMP SHORT 0015E089
0015E084    E9 0E110000     JMP <zle???>
0015E089    41              INC ECX
0015E08A    83F9 09         CMP ECX,9
0015E08D  ^ 0F85 6FFDFFFF   JNZ 0015DE02
0015E093    8A240A          MOV AH,BYTE PTR DS:[EDX+ECX]
0015E096    80FC 00         CMP AH,0
0015E099    0F85 F8100000   JNZ <zle???>
0015E09F    DDC0            FFREE ST
0015E0A1    DDC1            FFREE ST(1)
0015E0A3    DDC2            FFREE ST(2)
0015E0A5    DDC3            FFREE ST(3)
0015E0A7    DDC4            FFREE ST(4)
0015E0A9    DDC5            FFREE ST(5)
0015E0AB    DDC6            FFREE ST(6)
0015E0AD    DDC7            FFREE ST(7)
0015E0AF    DB05 04704000   FILD DWORD PTR DS:[407004]
0015E0B5    C705 28704000 2>MOV DWORD PTR DS:[407028],2B
0015E0BF    C705 2C704000 0>MOV DWORD PTR DS:[40702C],3
0015E0C9    DB05 08704000   FILD DWORD PTR DS:[407008]
0015E0CF    C705 34704000 5>MOV DWORD PTR DS:[407034],59
0015E0D9    DA05 10704000   FIADD DWORD PTR DS:[407010]
0015E0DF    C705 30704000 1>MOV DWORD PTR DS:[407030],11
0015E0E9    DA0D 2C704000   FIMUL DWORD PTR DS:[40702C]
0015E0EF    DB05 00704000   FILD DWORD PTR DS:[407000]
0015E0F5    DA05 34704000   FIADD DWORD PTR DS:[407034]
0015E0FB    C705 3C704000 1>MOV DWORD PTR DS:[40703C],14
0015E105    DA0D 0C704000   FIMUL DWORD PTR DS:[40700C]
0015E10B    DB1D 38704000   FISTP DWORD PTR DS:[407038]
0015E111    DA0D 30704000   FIMUL DWORD PTR DS:[407030]
0015E117    DA25 20704000   FISUB DWORD PTR DS:[407020]
0015E11D    DA0D 28704000   FIMUL DWORD PTR DS:[407028]
0015E123    DA05 1C704000   FIADD DWORD PTR DS:[40701C]
0015E129    DB05 3C704000   FILD DWORD PTR DS:[40703C]
0015E12F    C705 40704000 0>MOV DWORD PTR DS:[407040],9
0015E139    DA05 14704000   FIADD DWORD PTR DS:[407014]
0015E13F    DB1D 34704000   FISTP DWORD PTR DS:[407034]
0015E145    DA0D 18704000   FIMUL DWORD PTR DS:[407018]
0015E14B    C705 30704000 2>MOV DWORD PTR DS:[407030],2D
0015E155    C705 3C704000 1>MOV DWORD PTR DS:[40703C],18
0015E15F    C705 28704000 1>MOV DWORD PTR DS:[407028],1D
0015E169    DB05 1C704000   FILD DWORD PTR DS:[40701C]
0015E16F    DA0D 00704000   FIMUL DWORD PTR DS:[407000]
0015E175    DB05 08704000   FILD DWORD PTR DS:[407008]
0015E17B    DA25 30704000   FISUB DWORD PTR DS:[407030]
0015E181    C705 44704000 0>MOV DWORD PTR DS:[407044],0F
0015E18B    DA05 1C704000   FIADD DWORD PTR DS:[40701C]
0015E191    DA0D 28704000   FIMUL DWORD PTR DS:[407028]
0015E197    DB05 0C704000   FILD DWORD PTR DS:[40700C]
0015E19D    DB05 34704000   FILD DWORD PTR DS:[407034]
0015E1A3    DA0D 18704000   FIMUL DWORD PTR DS:[407018]
0015E1A9    DA25 34704000   FISUB DWORD PTR DS:[407034]
0015E1AF    DA0D 04704000   FIMUL DWORD PTR DS:[407004]
0015E1B5    DB05 38704000   FILD DWORD PTR DS:[407038]
0015E1BB    DA25 3C704000   FISUB DWORD PTR DS:[40703C]
0015E1C1    DB1D 34704000   FISTP DWORD PTR DS:[407034]
0015E1C7    DB1D 3C704000   FISTP DWORD PTR DS:[40703C]
0015E1CD    DA0D 08704000   FIMUL DWORD PTR DS:[407008]
0015E1D3    C705 3C704000 2>MOV DWORD PTR DS:[40703C],20
0015E1DD    DA05 38704000   FIADD DWORD PTR DS:[407038]
0015E1E3    DA25 3C704000   FISUB DWORD PTR DS:[40703C]
0015E1E9    DA05 04704000   FIADD DWORD PTR DS:[407004]
0015E1EF    DB1D 30704000   FISTP DWORD PTR DS:[407030]
0015E1F5    C705 4C704000 0>MOV DWORD PTR DS:[40704C],0D
0015E1FF    DA05 20704000   FIADD DWORD PTR DS:[407020]
0015E205    DA0D 04704000   FIMUL DWORD PTR DS:[407004]
0015E20B    DA25 30704000   FISUB DWORD PTR DS:[407030]
0015E211    DB1D 50704000   FISTP DWORD PTR DS:[407050]
0015E217    DA05 04704000   FIADD DWORD PTR DS:[407004]
0015E21D    DA0D 4C704000   FIMUL DWORD PTR DS:[40704C]
0015E223    DB1D 54704000   FISTP DWORD PTR DS:[407054]
0015E229    DA05 50704000   FIADD DWORD PTR DS:[407050]
0015E22F    DB05 08704000   FILD DWORD PTR DS:[407008]
0015E235    DA0D 44704000   FIMUL DWORD PTR DS:[407044]
0015E23B    DB1D 24704000   FISTP DWORD PTR DS:[407024]
0015E241    DA05 04704000   FIADD DWORD PTR DS:[407004]
0015E247    DB1D 40704000   FISTP DWORD PTR DS:[407040]
0015E24D    C705 58704000 4>MOV DWORD PTR DS:[407058],48
0015E257    DA05 20704000   FIADD DWORD PTR DS:[407020]
0015E25D    DA0D 28704000   FIMUL DWORD PTR DS:[407028]
0015E263    DA25 18704000   FISUB DWORD PTR DS:[407018]
0015E269    DB05 10704000   FILD DWORD PTR DS:[407010]
0015E26F    DA0D 2C704000   FIMUL DWORD PTR DS:[40702C]
0015E275    DB05 14704000   FILD DWORD PTR DS:[407014]
0015E27B    DA0D 18704000   FIMUL DWORD PTR DS:[407018]
0015E281    DA05 04704000   FIADD DWORD PTR DS:[407004]
0015E287    DA25 18704000   FISUB DWORD PTR DS:[407018]
0015E28D    DA0D 0C704000   FIMUL DWORD PTR DS:[40700C]
0015E293    DB05 08704000   FILD DWORD PTR DS:[407008]
0015E299    C705 5C704000 0>MOV DWORD PTR DS:[40705C],6
0015E2A3    C705 60704000 4>MOV DWORD PTR DS:[407060],47
0015E2AD    DA25 58704000   FISUB DWORD PTR DS:[407058]
0015E2B3    DA0D 00704000   FIMUL DWORD PTR DS:[407000]
0015E2B9    DB1D 4C704000   FISTP DWORD PTR DS:[40704C]
0015E2BF    DA05 30704000   FIADD DWORD PTR DS:[407030]
0015E2C5    DB05 3C704000   FILD DWORD PTR DS:[40703C]
0015E2CB    DA25 34704000   FISUB DWORD PTR DS:[407034]
0015E2D1    DB05 00704000   FILD DWORD PTR DS:[407000]
0015E2D7    DA0D 44704000   FIMUL DWORD PTR DS:[407044]
0015E2DD    DB1D 44704000   FISTP DWORD PTR DS:[407044]
0015E2E3    DA05 10704000   FIADD DWORD PTR DS:[407010]
0015E2E9    DA05 10704000   FIADD DWORD PTR DS:[407010]
0015E2EF    DB1D 3C704000   FISTP DWORD PTR DS:[40703C]
0015E2F5    DA05 20704000   FIADD DWORD PTR DS:[407020]
0015E2FB    DA05 2C704000   FIADD DWORD PTR DS:[40702C]
0015E301    DA0D 10704000   FIMUL DWORD PTR DS:[407010]
0015E307    DA05 1C704000   FIADD DWORD PTR DS:[40701C]
0015E30D    DB1D 58704000   FISTP DWORD PTR DS:[407058]
0015E313    DA25 54704000   FISUB DWORD PTR DS:[407054]
0015E319    DA05 00704000   FIADD DWORD PTR DS:[407000]
0015E31F    DA0D 04704000   FIMUL DWORD PTR DS:[407004]
0015E325    DB1D 48704000   FISTP DWORD PTR DS:[407048]
0015E32B    DA25 44704000   FISUB DWORD PTR DS:[407044]
0015E331    DA0D 1C704000   FIMUL DWORD PTR DS:[40701C]
0015E337    DA05 10704000   FIADD DWORD PTR DS:[407010]
0015E33D    DA05 3C704000   FIADD DWORD PTR DS:[40703C]
0015E343    DB1D 3C704000   FISTP DWORD PTR DS:[40703C]
0015E349    DB05 60704000   FILD DWORD PTR DS:[407060]
0015E34F    DA05 0C704000   FIADD DWORD PTR DS:[40700C]
0015E355    DA0D 14704000   FIMUL DWORD PTR DS:[407014]
0015E35B    DA25 10704000   FISUB DWORD PTR DS:[407010]
0015E361    DA05 48704000   FIADD DWORD PTR DS:[407048]
0015E367    DB05 5C704000   FILD DWORD PTR DS:[40705C]
0015E36D    DA05 20704000   FIADD DWORD PTR DS:[407020]
0015E373    DA25 1C704000   FISUB DWORD PTR DS:[40701C]
0015E379    DA05 18704000   FIADD DWORD PTR DS:[407018]
0015E37F    DA25 14704000   FISUB DWORD PTR DS:[407014]
0015E385    DA05 10704000   FIADD DWORD PTR DS:[407010]
0015E38B    DA25 0C704000   FISUB DWORD PTR DS:[40700C]
0015E391    DA05 08704000   FIADD DWORD PTR DS:[407008]
0015E397    DB05 0C704000   FILD DWORD PTR DS:[40700C]
0015E39D    DA0D 04704000   FIMUL DWORD PTR DS:[407004]
0015E3A3    DA05 24704000   FIADD DWORD PTR DS:[407024]
0015E3A9    DB05 00704000   FILD DWORD PTR DS:[407000]
0015E3AF    DA25 04704000   FISUB DWORD PTR DS:[407004]
0015E3B5    DB05 28704000   FILD DWORD PTR DS:[407028]
0015E3BB    DA0D 18704000   FIMUL DWORD PTR DS:[407018]
0015E3C1    DA25 04704000   FISUB DWORD PTR DS:[407004]
0015E3C7    DA0D 1C704000   FIMUL DWORD PTR DS:[40701C]
0015E3CD    DA25 20704000   FISUB DWORD PTR DS:[407020]
0015E3D3    DA05 14704000   FIADD DWORD PTR DS:[407014]
0015E3D9    DA0D 2C704000   FIMUL DWORD PTR DS:[40702C]
0015E3DF    DB1D 68704000   FISTP DWORD PTR DS:[407068]
0015E3E5    DB1D 6C704000   FISTP DWORD PTR DS:[40706C]
0015E3EB    DB1D 70704000   FISTP DWORD PTR DS:[407070]
0015E3F1    DB1D 74704000   FISTP DWORD PTR DS:[407074]
0015E3F7    DB1D 78704000   FISTP DWORD PTR DS:[407078]
0015E3FD    DB05 68704000   FILD DWORD PTR DS:[407068]
0015E403    DB05 74704000   FILD DWORD PTR DS:[407074]
0015E409    DB05 70704000   FILD DWORD PTR DS:[407070]
0015E40F    DB05 6C704000   FILD DWORD PTR DS:[40706C]
0015E415    DB05 78704000   FILD DWORD PTR DS:[407078]
0015E41B    DB05 08704000   FILD DWORD PTR DS:[407008]
0015E421    DA05 00704000   FIADD DWORD PTR DS:[407000]
0015E427    DB1D 54704000   FISTP DWORD PTR DS:[407054]
0015E42D    DB1D 24704000   FISTP DWORD PTR DS:[407024]
0015E433    DB1D 34704000   FISTP DWORD PTR DS:[407034]
0015E439    DA05 3C704000   FIADD DWORD PTR DS:[40703C]
0015E43F    DB1D 3C704000   FISTP DWORD PTR DS:[40703C]
0015E445    DA0D 34704000   FIMUL DWORD PTR DS:[407034]
0015E44B    DB1D 34704000   FISTP DWORD PTR DS:[407034]
0015E451    DB05 40704000   FILD DWORD PTR DS:[407040]
0015E457    DA25 14704000   FISUB DWORD PTR DS:[407014]
0015E45D    DB1D 40704000   FISTP DWORD PTR DS:[407040]
0015E463    DA05 08704000   FIADD DWORD PTR DS:[407008]
0015E469    DA25 24704000   FISUB DWORD PTR DS:[407024]
0015E46F    DB1D 54704000   FISTP DWORD PTR DS:[407054]
0015E475    C705 28704000 0>MOV DWORD PTR DS:[407028],3
0015E47F    C705 24704000 3>MOV DWORD PTR DS:[407024],34
0015E489    C705 2C704000 0>MOV DWORD PTR DS:[40702C],0C
0015E493    C705 30704000 0>MOV DWORD PTR DS:[407030],6
0015E49D    C705 38704000 0>MOV DWORD PTR DS:[407038],0B
0015E4A7    C705 44704000 0>MOV DWORD PTR DS:[407044],8
0015E4B1    C705 48704000 3>MOV DWORD PTR DS:[407048],35
0015E4BB    DB05 08704000   FILD DWORD PTR DS:[407008]
0015E4C1    DA05 04704000   FIADD DWORD PTR DS:[407004]
0015E4C7    DA0D 18704000   FIMUL DWORD PTR DS:[407018]
0015E4CD    DA25 38704000   FISUB DWORD PTR DS:[407038]
0015E4D3    DB05 20704000   FILD DWORD PTR DS:[407020]
0015E4D9    DA0D 30704000   FIMUL DWORD PTR DS:[407030]
0015E4DF    DA05 2C704000   FIADD DWORD PTR DS:[40702C]
0015E4E5    DB05 44704000   FILD DWORD PTR DS:[407044]
0015E4EB    DA0D 14704000   FIMUL DWORD PTR DS:[407014]
0015E4F1    DA05 1C704000   FIADD DWORD PTR DS:[40701C]
0015E4F7    DA25 20704000   FISUB DWORD PTR DS:[407020]
0015E4FD    DA05 1C704000   FIADD DWORD PTR DS:[40701C]
0015E503    DA0D 08704000   FIMUL DWORD PTR DS:[407008]
0015E509    DB05 00704000   FILD DWORD PTR DS:[407000]
0015E50F    DA0D 00704000   FIMUL DWORD PTR DS:[407000]
0015E515    DA05 0C704000   FIADD DWORD PTR DS:[40700C]
0015E51B    DA25 10704000   FISUB DWORD PTR DS:[407010]
0015E521    DA0D 14704000   FIMUL DWORD PTR DS:[407014]
0015E527    DB05 18704000   FILD DWORD PTR DS:[407018]
0015E52D    DA0D 48704000   FIMUL DWORD PTR DS:[407048]
0015E533    DA25 0C704000   FISUB DWORD PTR DS:[40700C]
0015E539    DA0D 38704000   FIMUL DWORD PTR DS:[407038]
0015E53F    C705 38704000 0>MOV DWORD PTR DS:[407038],7
0015E549    DA05 0C704000   FIADD DWORD PTR DS:[40700C]
0015E54F    DB1D 5C704000   FISTP DWORD PTR DS:[40705C]
0015E555    DA05 38704000   FIADD DWORD PTR DS:[407038]
0015E55B    DA0D 24704000   FIMUL DWORD PTR DS:[407024]
0015E561    DB1D 60704000   FISTP DWORD PTR DS:[407060]
0015E567    DA05 00704000   FIADD DWORD PTR DS:[407000]
0015E56D    DB05 1C704000   FILD DWORD PTR DS:[40701C]
0015E573    DA0D 2C704000   FIMUL DWORD PTR DS:[40702C]
0015E579    DA25 2C704000   FISUB DWORD PTR DS:[40702C]
0015E57F    DA05 04704000   FIADD DWORD PTR DS:[407004]
0015E585    DB05 28704000   FILD DWORD PTR DS:[407028]
0015E58B    DA05 24704000   FIADD DWORD PTR DS:[407024]
0015E591    DA0D 10704000   FIMUL DWORD PTR DS:[407010]
0015E597    DA05 0C704000   FIADD DWORD PTR DS:[40700C]
0015E59D    DA25 10704000   FISUB DWORD PTR DS:[407010]
0015E5A3    C705 24704000 2>MOV DWORD PTR DS:[407024],20
0015E5AD    DB05 20704000   FILD DWORD PTR DS:[407020]
0015E5B3    DA0D 08704000   FIMUL DWORD PTR DS:[407008]
0015E5B9    DA25 00704000   FISUB DWORD PTR DS:[407000]
0015E5BF    DA05 2C704000   FIADD DWORD PTR DS:[40702C]
0015E5C5    DA0D 28704000   FIMUL DWORD PTR DS:[407028]
0015E5CB    DA05 1C704000   FIADD DWORD PTR DS:[40701C]
0015E5D1    DA0D 30704000   FIMUL DWORD PTR DS:[407030]
0015E5D7    DA05 14704000   FIADD DWORD PTR DS:[407014]
0015E5DD    DB05 1C704000   FILD DWORD PTR DS:[40701C]
0015E5E3    DA0D 04704000   FIMUL DWORD PTR DS:[407004]
0015E5E9    DA05 24704000   FIADD DWORD PTR DS:[407024]
0015E5EF    DA0D 28704000   FIMUL DWORD PTR DS:[407028]
0015E5F5    DA05 08704000   FIADD DWORD PTR DS:[407008]
0015E5FB    DA05 44704000   FIADD DWORD PTR DS:[407044]
0015E601    DB1D 4C704000   FISTP DWORD PTR DS:[40704C]
0015E607    DB05 04704000   FILD DWORD PTR DS:[407004]
0015E60D    DA05 0C704000   FIADD DWORD PTR DS:[40700C]
0015E613    DA0D 44704000   FIMUL DWORD PTR DS:[407044]
0015E619    DA05 18704000   FIADD DWORD PTR DS:[407018]
0015E61F    DA25 0C704000   FISUB DWORD PTR DS:[40700C]
0015E625    DA0D 10704000   FIMUL DWORD PTR DS:[407010]
0015E62B    DA05 14704000   FIADD DWORD PTR DS:[407014]
0015E631    DB1D 50704000   FISTP DWORD PTR DS:[407050]
0015E637    DB1D 68704000   FISTP DWORD PTR DS:[407068]
0015E63D    DB1D 6C704000   FISTP DWORD PTR DS:[40706C]
0015E643    DB1D 70704000   FISTP DWORD PTR DS:[407070]
0015E649    DB1D 74704000   FISTP DWORD PTR DS:[407074]
0015E64F    DB1D 78704000   FISTP DWORD PTR DS:[407078]
0015E655    DB05 68704000   FILD DWORD PTR DS:[407068]
0015E65B    DB05 74704000   FILD DWORD PTR DS:[407074]
0015E661    DB05 70704000   FILD DWORD PTR DS:[407070]
0015E667    DB05 6C704000   FILD DWORD PTR DS:[40706C]
0015E66D    DB05 78704000   FILD DWORD PTR DS:[407078]
0015E673    DA05 5C704000   FIADD DWORD PTR DS:[40705C]
0015E679    DA0D 28704000   FIMUL DWORD PTR DS:[407028]
0015E67F    DA05 10704000   FIADD DWORD PTR DS:[407010]
0015E685    DB1D 24704000   FISTP DWORD PTR DS:[407024]
0015E68B    DA25 60704000   FISUB DWORD PTR DS:[407060]
0015E691    DB1D 68704000   FISTP DWORD PTR DS:[407068]
0015E697    DB1D 6C704000   FISTP DWORD PTR DS:[40706C]
0015E69D    DB1D 70704000   FISTP DWORD PTR DS:[407070]
0015E6A3    DB1D 74704000   FISTP DWORD PTR DS:[407074]
0015E6A9    DB1D 78704000   FISTP DWORD PTR DS:[407078]
0015E6AF    DB05 68704000   FILD DWORD PTR DS:[407068]
0015E6B5    DB05 74704000   FILD DWORD PTR DS:[407074]
0015E6BB    DB05 70704000   FILD DWORD PTR DS:[407070]
0015E6C1    DB05 6C704000   FILD DWORD PTR DS:[40706C]
0015E6C7    DB05 78704000   FILD DWORD PTR DS:[407078]
0015E6CD    DA05 20704000   FIADD DWORD PTR DS:[407020]
0015E6D3    DA0D 14704000   FIMUL DWORD PTR DS:[407014]
0015E6D9    DA25 00704000   FISUB DWORD PTR DS:[407000]
0015E6DF    DA25 50704000   FISUB DWORD PTR DS:[407050]
0015E6E5    DB1D 50704000   FISTP DWORD PTR DS:[407050]
0015E6EB    DA25 24704000   FISUB DWORD PTR DS:[407024]
0015E6F1    DB1D 30704000   FISTP DWORD PTR DS:[407030]
0015E6F7    DA25 30704000   FISUB DWORD PTR DS:[407030]
0015E6FD    DB1D 28704000   FISTP DWORD PTR DS:[407028]
0015E703    DB05 18704000   FILD DWORD PTR DS:[407018]
0015E709    DA0D 20704000   FIMUL DWORD PTR DS:[407020]
0015E70F    DA05 04704000   FIADD DWORD PTR DS:[407004]
0015E715    DA25 48704000   FISUB DWORD PTR DS:[407048]
0015E71B    DA0D 38704000   FIMUL DWORD PTR DS:[407038]
0015E721    DA05 08704000   FIADD DWORD PTR DS:[407008]
0015E727    DB05 0C704000   FILD DWORD PTR DS:[40700C]
0015E72D    DA0D 2C704000   FIMUL DWORD PTR DS:[40702C]
0015E733    DA05 10704000   FIADD DWORD PTR DS:[407010]
0015E739    DA0D 1C704000   FIMUL DWORD PTR DS:[40701C]
0015E73F    DB1D 2C704000   FISTP DWORD PTR DS:[40702C]
0015E745    DB1D 38704000   FISTP DWORD PTR DS:[407038]
0015E74B    DA25 4C704000   FISUB DWORD PTR DS:[40704C]
0015E751    DA05 2C704000   FIADD DWORD PTR DS:[40702C]
0015E757    DB1D 4C704000   FISTP DWORD PTR DS:[40704C]
0015E75D    DA05 38704000   FIADD DWORD PTR DS:[407038]
0015E763    DB1D 38704000   FISTP DWORD PTR DS:[407038]
0015E769    B8 4A8CFFFF     MOV EAX,FFFF8C4A
0015E76E    8B1D 3C704000   MOV EBX,DWORD PTR DS:[40703C]
0015E774    3BC3            CMP EAX,EBX
0015E776    0F85 1B0A0000   JNZ <zle???>
0015E77C    B8 480B0000     MOV EAX,0B48
0015E781    8B1D 34704000   MOV EBX,DWORD PTR DS:[407034]
0015E787    3BC3            CMP EAX,EBX
0015E789    0F85 080A0000   JNZ <zle???>
0015E78F    B8 2ABC94FF     MOV EAX,FF94BC2A
0015E794    8B1D 38704000   MOV EBX,DWORD PTR DS:[407038]
0015E79A    3BC3            CMP EAX,EBX
0015E79C    0F85 F5090000   JNZ <zle???>
0015E7A2    B8 22C7D800     MOV EAX,0D8C722
0015E7A7    8B1D 40704000   MOV EBX,DWORD PTR DS:[407040]
0015E7AD    3BC3            CMP EAX,EBX
0015E7AF    0F85 E2090000   JNZ <zle???>
0015E7B5    B8 C2430000     MOV EAX,43C2
0015E7BA    8B1D 4C704000   MOV EBX,DWORD PTR DS:[40704C]
0015E7C0    3BC3            CMP EAX,EBX
0015E7C2    B8 13EC0300     MOV EAX,3EC13
0015E7C7    8B1D 54704000   MOV EBX,DWORD PTR DS:[407054]
0015E7CD    3BC3            CMP EAX,EBX
0015E7CF    0F85 C2090000   JNZ <zle???>
0015E7D5    A1 58704000     MOV EAX,DWORD PTR DS:[407058]
0015E7DA    BB 33488E00     MOV EBX,8E4833
0015E7DF    3BC3            CMP EAX,EBX
0015E7E1    0F85 B0090000   JNZ <zle???>
0015E7E7    B8 D5BAFFFF     MOV EAX,FFFFBAD5
0015E7EC    8B1D 50704000   MOV EBX,DWORD PTR DS:[407050]
0015E7F2    3BC3            CMP EAX,EBX
0015E7F4    0F85 9D090000   JNZ <zle???>
0015E7FA    A1 28704000     MOV EAX,DWORD PTR DS:[407028]
0015E7FF    BB BE9D0100     MOV EBX,19DBE
0015E804    3BC3            CMP EAX,EBX
0015E806    0F85 8B090000   JNZ <zle???>
0015E80C    C705 58704000 0>MOV DWORD PTR DS:[407058],0D
0015E816    C705 60704000 1>MOV DWORD PTR DS:[407060],13
0015E820    C705 24704000 0>MOV DWORD PTR DS:[407024],5
0015E82A    DB05 00704000   FILD DWORD PTR DS:[407000]
0015E830    DA0D 24704000   FIMUL DWORD PTR DS:[407024]
0015E836    C705 28704000 1>MOV DWORD PTR DS:[407028],11
0015E840    DB1D 24704000   FISTP DWORD PTR DS:[407024]
0015E846    DB05 18704000   FILD DWORD PTR DS:[407018]
0015E84C    C705 48704000 0>MOV DWORD PTR DS:[407048],7
0015E856    C705 40704000 0>MOV DWORD PTR DS:[407040],7
0015E860    DA0D 60704000   FIMUL DWORD PTR DS:[407060]
0015E866    C705 50704000 0>MOV DWORD PTR DS:[407050],0B
0015E870    DB1D 30704000   FISTP DWORD PTR DS:[407030]
0015E876    DB05 28704000   FILD DWORD PTR DS:[407028]
0015E87C    DA0D 08704000   FIMUL DWORD PTR DS:[407008]
0015E882    DB1D 34704000   FISTP DWORD PTR DS:[407034]
0015E888    DB05 20704000   FILD DWORD PTR DS:[407020]
0015E88E    DA0D 40704000   FIMUL DWORD PTR DS:[407040]
0015E894    DB1D 44704000   FISTP DWORD PTR DS:[407044]
0015E89A    C705 40704000 0>MOV DWORD PTR DS:[407040],3
0015E8A4    DB05 40704000   FILD DWORD PTR DS:[407040]
0015E8AA    DA0D 08704000   FIMUL DWORD PTR DS:[407008]
0015E8B0    DB1D 60704000   FISTP DWORD PTR DS:[407060]
0015E8B6    DB05 48704000   FILD DWORD PTR DS:[407048]
0015E8BC    DA0D 18704000   FIMUL DWORD PTR DS:[407018]
0015E8C2    C705 28704000 0>MOV DWORD PTR DS:[407028],5
0015E8CC    DB1D 48704000   FISTP DWORD PTR DS:[407048]
0015E8D2    DB05 44704000   FILD DWORD PTR DS:[407044]
0015E8D8    C705 40704000 0>MOV DWORD PTR DS:[407040],5
0015E8E2    DA05 34704000   FIADD DWORD PTR DS:[407034]
0015E8E8    DA05 10704000   FIADD DWORD PTR DS:[407010]
0015E8EE    DB1D 2C704000   FISTP DWORD PTR DS:[40702C]
0015E8F4    DB05 58704000   FILD DWORD PTR DS:[407058]
0015E8FA    C705 38704000 0>MOV DWORD PTR DS:[407038],5
0015E904    DA0D 00704000   FIMUL DWORD PTR DS:[407000]
0015E90A    DA05 0C704000   FIADD DWORD PTR DS:[40700C]
0015E910    DB1D 58704000   FISTP DWORD PTR DS:[407058]
0015E916    DB05 18704000   FILD DWORD PTR DS:[407018]
0015E91C    DA05 18704000   FIADD DWORD PTR DS:[407018]
0015E922    C705 34704000 1>MOV DWORD PTR DS:[407034],11
0015E92C    DB1D 5C704000   FISTP DWORD PTR DS:[40705C]
0015E932    DB05 50704000   FILD DWORD PTR DS:[407050]
0015E938    DA0D 08704000   FIMUL DWORD PTR DS:[407008]
0015E93E    DA05 24704000   FIADD DWORD PTR DS:[407024]
0015E944    DB1D 24704000   FISTP DWORD PTR DS:[407024]
0015E94A    DB05 50704000   FILD DWORD PTR DS:[407050]
0015E950    DA0D 10704000   FIMUL DWORD PTR DS:[407010]
0015E956    DB1D 50704000   FISTP DWORD PTR DS:[407050]
0015E95C    DB05 04704000   FILD DWORD PTR DS:[407004]
0015E962    DA05 00704000   FIADD DWORD PTR DS:[407000]
0015E968    DA05 04704000   FIADD DWORD PTR DS:[407004]
0015E96E    DB1D 4C704000   FISTP DWORD PTR DS:[40704C]
0015E974    DB05 10704000   FILD DWORD PTR DS:[407010]
0015E97A    DA0D 38704000   FIMUL DWORD PTR DS:[407038]
0015E980    DB1D 38704000   FISTP DWORD PTR DS:[407038]
0015E986    C705 54704000 1>MOV DWORD PTR DS:[407054],13
0015E990    DB05 54704000   FILD DWORD PTR DS:[407054]
0015E996    DA0D 20704000   FIMUL DWORD PTR DS:[407020]
0015E99C    DA05 60704000   FIADD DWORD PTR DS:[407060]
0015E9A2    DA05 4C704000   FIADD DWORD PTR DS:[40704C]
0015E9A8    DB1D 60704000   FISTP DWORD PTR DS:[407060]
0015E9AE    DB05 54704000   FILD DWORD PTR DS:[407054]
0015E9B4    C705 54704000 0>MOV DWORD PTR DS:[407054],0B
0015E9BE    DA0D 04704000   FIMUL DWORD PTR DS:[407004]
0015E9C4    DA05 48704000   FIADD DWORD PTR DS:[407048]
0015E9CA    DB1D 48704000   FISTP DWORD PTR DS:[407048]
0015E9D0    DB05 0C704000   FILD DWORD PTR DS:[40700C]
0015E9D6    DA0D 28704000   FIMUL DWORD PTR DS:[407028]
0015E9DC    DB1D 3C704000   FISTP DWORD PTR DS:[40703C]
0015E9E2    DB05 00704000   FILD DWORD PTR DS:[407000]
0015E9E8    DA0D 54704000   FIMUL DWORD PTR DS:[407054]
0015E9EE    C705 4C704000 0>MOV DWORD PTR DS:[40704C],0D
0015E9F8    DB1D 54704000   FISTP DWORD PTR DS:[407054]
0015E9FE    C705 28704000 0>MOV DWORD PTR DS:[407028],0B
0015EA08    DB05 14704000   FILD DWORD PTR DS:[407014]
0015EA0E    DA0D 28704000   FIMUL DWORD PTR DS:[407028]
0015EA14    DA05 3C704000   FIADD DWORD PTR DS:[40703C]
0015EA1A    DB1D 3C704000   FISTP DWORD PTR DS:[40703C]
0015EA20    DB05 2C704000   FILD DWORD PTR DS:[40702C]
0015EA26    DA05 14704000   FIADD DWORD PTR DS:[407014]
0015EA2C    DA05 14704000   FIADD DWORD PTR DS:[407014]
0015EA32    DB1D 2C704000   FISTP DWORD PTR DS:[40702C]
0015EA38    DB05 1C704000   FILD DWORD PTR DS:[40701C]
0015EA3E    DA0D 34704000   FIMUL DWORD PTR DS:[407034]
0015EA44    DA05 60704000   FIADD DWORD PTR DS:[407060]
0015EA4A    DB1D 34704000   FISTP DWORD PTR DS:[407034]
0015EA50    C705 60704000 0>MOV DWORD PTR DS:[407060],0D
0015EA5A    DB05 20704000   FILD DWORD PTR DS:[407020]
0015EA60    DA0D 60704000   FIMUL DWORD PTR DS:[407060]
0015EA66    C705 28704000 0>MOV DWORD PTR DS:[407028],7
0015EA70    DB1D 60704000   FISTP DWORD PTR DS:[407060]
0015EA76    DB05 4C704000   FILD DWORD PTR DS:[40704C]
0015EA7C    DA0D 18704000   FIMUL DWORD PTR DS:[407018]
0015EA82    DB1D 4C704000   FISTP DWORD PTR DS:[40704C]
0015EA88    DB05 10704000   FILD DWORD PTR DS:[407010]
0015EA8E    DA0D 28704000   FIMUL DWORD PTR DS:[407028]
0015EA94    DA05 34704000   FIADD DWORD PTR DS:[407034]
0015EA9A    DA05 3C704000   FIADD DWORD PTR DS:[40703C]
0015EAA0    DA05 4C704000   FIADD DWORD PTR DS:[40704C]
0015EAA6    C705 4C704000 0>MOV DWORD PTR DS:[40704C],5
0015EAB0    DB1D 28704000   FISTP DWORD PTR DS:[407028]
0015EAB6    DB05 1C704000   FILD DWORD PTR DS:[40701C]
0015EABC    DA0D 40704000   FIMUL DWORD PTR DS:[407040]
0015EAC2    DB1D 34704000   FISTP DWORD PTR DS:[407034]
0015EAC8    A1 28704000     MOV EAX,DWORD PTR DS:[407028]
0015EACD    C705 28704000 0>MOV DWORD PTR DS:[407028],7
0015EAD7    BB BF090000     MOV EBX,9BF
0015EADC    3BC3            CMP EAX,EBX
0015EADE    C705 3C704000 0>MOV DWORD PTR DS:[40703C],0D
0015EAE8    DB05 08704000   FILD DWORD PTR DS:[407008]
0015EAEE    DA0D 28704000   FIMUL DWORD PTR DS:[407028]
0015EAF4    DB1D 40704000   FISTP DWORD PTR DS:[407040]
0015EAFA    DB05 18704000   FILD DWORD PTR DS:[407018]
0015EB00    DA05 2C704000   FIADD DWORD PTR DS:[40702C]
0015EB06    DA05 18704000   FIADD DWORD PTR DS:[407018]
0015EB0C    DA05 54704000   FIADD DWORD PTR DS:[407054]
0015EB12    DA05 34704000   FIADD DWORD PTR DS:[407034]
0015EB18    DA05 18704000   FIADD DWORD PTR DS:[407018]
0015EB1E    DB1D 44704000   FISTP DWORD PTR DS:[407044]
0015EB24    DB05 08704000   FILD DWORD PTR DS:[407008]
0015EB2A    DA0D 4C704000   FIMUL DWORD PTR DS:[40704C]
0015EB30    DB1D 28704000   FISTP DWORD PTR DS:[407028]
0015EB36    DB05 14704000   FILD DWORD PTR DS:[407014]
0015EB3C    DA0D 4C704000   FIMUL DWORD PTR DS:[40704C]
0015EB42    DB1D 2C704000   FISTP DWORD PTR DS:[40702C]
0015EB48    DB05 4C704000   FILD DWORD PTR DS:[40704C]
0015EB4E    DA0D 18704000   FIMUL DWORD PTR DS:[407018]
0015EB54    DA05 58704000   FIADD DWORD PTR DS:[407058]
0015EB5A    DB1D 4C704000   FISTP DWORD PTR DS:[40704C]
0015EB60    DB05 3C704000   FILD DWORD PTR DS:[40703C]
0015EB66    DA0D 04704000   FIMUL DWORD PTR DS:[407004]
0015EB6C    DA05 44704000   FIADD DWORD PTR DS:[407044]
0015EB72    DB1D 58704000   FISTP DWORD PTR DS:[407058]
0015EB78    DB05 3C704000   FILD DWORD PTR DS:[40703C]
0015EB7E    DA0D 08704000   FIMUL DWORD PTR DS:[407008]
0015EB84    DA05 5C704000   FIADD DWORD PTR DS:[40705C]
0015EB8A    C705 5C704000 1>MOV DWORD PTR DS:[40705C],11
0015EB94    DB1D 3C704000   FISTP DWORD PTR DS:[40703C]
0015EB9A    DB05 20704000   FILD DWORD PTR DS:[407020]
0015EBA0    DA05 50704000   FIADD DWORD PTR DS:[407050]
0015EBA6    C705 54704000 1>MOV DWORD PTR DS:[407054],11
0015EBB0    DA05 28704000   FIADD DWORD PTR DS:[407028]
0015EBB6    C705 28704000 1>MOV DWORD PTR DS:[407028],13
0015EBC0    DB1D 34704000   FISTP DWORD PTR DS:[407034]
0015EBC6    DB05 28704000   FILD DWORD PTR DS:[407028]
0015EBCC    DA0D 0C704000   FIMUL DWORD PTR DS:[40700C]
0015EBD2    DA05 58704000   FIADD DWORD PTR DS:[407058]
0015EBD8    DB1D 44704000   FISTP DWORD PTR DS:[407044]
0015EBDE    C705 50704000 1>MOV DWORD PTR DS:[407050],11
0015EBE8    A1 44704000     MOV EAX,DWORD PTR DS:[407044]
0015EBED    BB 73100000     MOV EBX,1073
0015EBF2    3BC3            CMP EAX,EBX
0015EBF4    DB05 2C704000   FILD DWORD PTR DS:[40702C]
0015EBFA    C705 58704000 0>MOV DWORD PTR DS:[407058],3
0015EC04    DA05 08704000   FIADD DWORD PTR DS:[407008]
0015EC0A    DB1D 28704000   FISTP DWORD PTR DS:[407028]
0015EC10    DB05 04704000   FILD DWORD PTR DS:[407004]
0015EC16    DA05 38704000   FIADD DWORD PTR DS:[407038]
0015EC1C    C705 2C704000 0>MOV DWORD PTR DS:[40702C],0B
0015EC26    DB1D 38704000   FISTP DWORD PTR DS:[407038]
0015EC2C    DB05 5C704000   FILD DWORD PTR DS:[40705C]
0015EC32    DA0D 18704000   FIMUL DWORD PTR DS:[407018]
0015EC38    DB1D 5C704000   FISTP DWORD PTR DS:[40705C]
0015EC3E    DB05 58704000   FILD DWORD PTR DS:[407058]
0015EC44    DA0D 20704000   FIMUL DWORD PTR DS:[407020]
0015EC4A    DB1D 44704000   FISTP DWORD PTR DS:[407044]
0015EC50    DB05 00704000   FILD DWORD PTR DS:[407000]
0015EC56    DA0D 58704000   FIMUL DWORD PTR DS:[407058]
0015EC5C    DA05 40704000   FIADD DWORD PTR DS:[407040]
0015EC62    DB1D 58704000   FISTP DWORD PTR DS:[407058]
0015EC68    DB05 2C704000   FILD DWORD PTR DS:[40702C]
0015EC6E    DA0D 1C704000   FIMUL DWORD PTR DS:[40701C]
0015EC74    DA05 60704000   FIADD DWORD PTR DS:[407060]
0015EC7A    DB1D 2C704000   FISTP DWORD PTR DS:[40702C]
0015EC80    DB05 08704000   FILD DWORD PTR DS:[407008]
0015EC86    DA05 38704000   FIADD DWORD PTR DS:[407038]
0015EC8C    DA05 08704000   FIADD DWORD PTR DS:[407008]
0015EC92    DB1D 38704000   FISTP DWORD PTR DS:[407038]
0015EC98    DB05 54704000   FILD DWORD PTR DS:[407054]
0015EC9E    DA0D 0C704000   FIMUL DWORD PTR DS:[40700C]
0015ECA4    DB1D 54704000   FISTP DWORD PTR DS:[407054]
0015ECAA    DB05 30704000   FILD DWORD PTR DS:[407030]
0015ECB0    DA05 1C704000   FIADD DWORD PTR DS:[40701C]
0015ECB6    DB1D 30704000   FISTP DWORD PTR DS:[407030]
0015ECBC    DB05 24704000   FILD DWORD PTR DS:[407024]
0015ECC2    DA05 18704000   FIADD DWORD PTR DS:[407018]
0015ECC8    DB1D 24704000   FISTP DWORD PTR DS:[407024]
0015ECCE    DB05 54704000   FILD DWORD PTR DS:[407054]
0015ECD4    DA05 14704000   FIADD DWORD PTR DS:[407014]
0015ECDA    DB1D 60704000   FISTP DWORD PTR DS:[407060]
0015ECE0    DB05 2C704000   FILD DWORD PTR DS:[40702C]
0015ECE6    C705 2C704000 0>MOV DWORD PTR DS:[40702C],7
0015ECF0    DA05 10704000   FIADD DWORD PTR DS:[407010]
0015ECF6    DA05 0C704000   FIADD DWORD PTR DS:[40700C]
0015ECFC    DA05 10704000   FIADD DWORD PTR DS:[407010]
0015ED02    DA05 0C704000   FIADD DWORD PTR DS:[40700C]
0015ED08    DA05 10704000   FIADD DWORD PTR DS:[407010]
0015ED0E    DB1D 54704000   FISTP DWORD PTR DS:[407054]
0015ED14    DB05 2C704000   FILD DWORD PTR DS:[40702C]
0015ED1A    DA0D 14704000   FIMUL DWORD PTR DS:[407014]
0015ED20    D805 38704000   FADD DWORD PTR DS:[407038]
0015ED26    DB1D 38704000   FISTP DWORD PTR DS:[407038]
0015ED2C    C705 2C704000 1>MOV DWORD PTR DS:[40702C],11
0015ED36    DB05 2C704000   FILD DWORD PTR DS:[40702C]
0015ED3C    DA0D 00704000   FIMUL DWORD PTR DS:[407000]
0015ED42    DA05 28704000   FIADD DWORD PTR DS:[407028]
0015ED48    DA05 48704000   FIADD DWORD PTR DS:[407048]
0015ED4E    C705 2C704000 0>MOV DWORD PTR DS:[40702C],5
0015ED58    DA05 54704000   FIADD DWORD PTR DS:[407054]
0015ED5E    C705 48704000 1>MOV DWORD PTR DS:[407048],13
0015ED68    DB1D 28704000   FISTP DWORD PTR DS:[407028]
0015ED6E    BB 550B0000     MOV EBX,0B55
0015ED73    A1 28704000     MOV EAX,DWORD PTR DS:[407028]
0015ED78    3BC3            CMP EAX,EBX
0015ED7A    0F85 17040000   JNZ <zle???>
0015ED80    DB05 20704000   FILD DWORD PTR DS:[407020]
0015ED86    C705 54704000 1>MOV DWORD PTR DS:[407054],13
0015ED90    DA0D 50704000   FIMUL DWORD PTR DS:[407050]
0015ED96    DA05 38704000   FIADD DWORD PTR DS:[407038]
0015ED9C    DB1D 38704000   FISTP DWORD PTR DS:[407038]
0015EDA2    DB05 04704000   FILD DWORD PTR DS:[407004]
0015EDA8    DA0D 50704000   FIMUL DWORD PTR DS:[407050]
0015EDAE    DB1D 50704000   FISTP DWORD PTR DS:[407050]
0015EDB4    DB05 34704000   FILD DWORD PTR DS:[407034]
0015EDBA    DA05 5C704000   FIADD DWORD PTR DS:[40705C]
0015EDC0    DA05 00704000   FIADD DWORD PTR DS:[407000]
0015EDC6    DA05 00704000   FIADD DWORD PTR DS:[407000]
0015EDCC    DB1D 40704000   FISTP DWORD PTR DS:[407040]
0015EDD2    DB05 48704000   FILD DWORD PTR DS:[407048]
0015EDD8    C705 5C704000 0>MOV DWORD PTR DS:[40705C],0D
0015EDE2    DA0D 10704000   FIMUL DWORD PTR DS:[407010]
0015EDE8    DA05 3C704000   FIADD DWORD PTR DS:[40703C]
0015EDEE    DB1D 34704000   FISTP DWORD PTR DS:[407034]
0015EDF4    DB05 0C704000   FILD DWORD PTR DS:[40700C]
0015EDFA    DA05 38704000   FIADD DWORD PTR DS:[407038]
0015EE00    DA05 0C704000   FIADD DWORD PTR DS:[40700C]
0015EE06    DA05 0C704000   FIADD DWORD PTR DS:[40700C]
0015EE0C    DB1D 38704000   FISTP DWORD PTR DS:[407038]
0015EE12    DB05 10704000   FILD DWORD PTR DS:[407010]
0015EE18    DA05 4C704000   FIADD DWORD PTR DS:[40704C]
0015EE1E    DA05 50704000   FIADD DWORD PTR DS:[407050]
0015EE24    DB1D 3C704000   FISTP DWORD PTR DS:[40703C]
0015EE2A    DB05 20704000   FILD DWORD PTR DS:[407020]
0015EE30    DA05 20704000   FIADD DWORD PTR DS:[407020]
0015EE36    DA05 30704000   FIADD DWORD PTR DS:[407030]
0015EE3C    C705 4C704000 0>MOV DWORD PTR DS:[40704C],0B
0015EE46    DB1D 50704000   FISTP DWORD PTR DS:[407050]
0015EE4C    DB05 24704000   FILD DWORD PTR DS:[407024]
0015EE52    C705 28704000 0>MOV DWORD PTR DS:[407028],0D
0015EE5C    DA05 1C704000   FIADD DWORD PTR DS:[40701C]
0015EE62    DA05 1C704000   FIADD DWORD PTR DS:[40701C]
0015EE68    DB1D 48704000   FISTP DWORD PTR DS:[407048]
0015EE6E    DB05 54704000   FILD DWORD PTR DS:[407054]
0015EE74    DA0D 00704000   FIMUL DWORD PTR DS:[407000]
0015EE7A    DA05 38704000   FIADD DWORD PTR DS:[407038]
0015EE80    C705 24704000 0>MOV DWORD PTR DS:[407024],7
0015EE8A    C705 54704000 0>MOV DWORD PTR DS:[407054],0D
0015EE94    DB1D 38704000   FISTP DWORD PTR DS:[407038]
0015EE9A    DB05 18704000   FILD DWORD PTR DS:[407018]
0015EEA0    DA0D 4C704000   FIMUL DWORD PTR DS:[40704C]
0015EEA6    C705 4C704000 1>MOV DWORD PTR DS:[40704C],11
0015EEB0    DA05 38704000   FIADD DWORD PTR DS:[407038]
0015EEB6    DB1D 38704000   FISTP DWORD PTR DS:[407038]
0015EEBC    DB05 1C704000   FILD DWORD PTR DS:[40701C]
0015EEC2    DA0D 5C704000   FIMUL DWORD PTR DS:[40705C]
0015EEC8    DA05 38704000   FIADD DWORD PTR DS:[407038]
0015EECE    DB1D 38704000   FISTP DWORD PTR DS:[407038]
0015EED4    B8 AD0B0000     MOV EAX,0BAD
0015EED9    8B1D 38704000   MOV EBX,DWORD PTR DS:[407038]
0015EEDF    3BC3            CMP EAX,EBX
0015EEE1    DB05 2C704000   FILD DWORD PTR DS:[40702C]
0015EEE7    DA0D 04704000   FIMUL DWORD PTR DS:[407004]
0015EEED    DB1D 2C704000   FISTP DWORD PTR DS:[40702C]
0015EEF3    DB05 04704000   FILD DWORD PTR DS:[407004]
0015EEF9    DA0D 24704000   FIMUL DWORD PTR DS:[407024]
0015EEFF    DA05 44704000   FIADD DWORD PTR DS:[407044]
0015EF05    DB1D 44704000   FISTP DWORD PTR DS:[407044]
0015EF0B    C705 5C704000 0>MOV DWORD PTR DS:[40705C],3
0015EF15    DB05 5C704000   FILD DWORD PTR DS:[40705C]
0015EF1B    DA0D 1C704000   FIMUL DWORD PTR DS:[40701C]
0015EF21    DA05 60704000   FIADD DWORD PTR DS:[407060]
0015EF27    C705 60704000 0>MOV DWORD PTR DS:[407060],0B
0015EF31    DB1D 5C704000   FISTP DWORD PTR DS:[40705C]
0015EF37    DB05 28704000   FILD DWORD PTR DS:[407028]
0015EF3D    DA0D 10704000   FIMUL DWORD PTR DS:[407010]
0015EF43    DB1D 28704000   FISTP DWORD PTR DS:[407028]
0015EF49    DB05 60704000   FILD DWORD PTR DS:[407060]
0015EF4F    DA0D 20704000   FIMUL DWORD PTR DS:[407020]
0015EF55    DB1D 24704000   FISTP DWORD PTR DS:[407024]
0015EF5B    DB05 60704000   FILD DWORD PTR DS:[407060]
0015EF61    DA0D 0C704000   FIMUL DWORD PTR DS:[40700C]
0015EF67    DA05 2C704000   FIADD DWORD PTR DS:[40702C]
0015EF6D    DB1D 38704000   FISTP DWORD PTR DS:[407038]
0015EF73    DB05 04704000   FILD DWORD PTR DS:[407004]
0015EF79    DA0D 60704000   FIMUL DWORD PTR DS:[407060]
0015EF7F    DB1D 2C704000   FISTP DWORD PTR DS:[40702C]
0015EF85    DB05 4C704000   FILD DWORD PTR DS:[40704C]
0015EF8B    DA0D 14704000   FIMUL DWORD PTR DS:[407014]
0015EF91    DA05 28704000   FIADD DWORD PTR DS:[407028]
0015EF97    DA05 38704000   FIADD DWORD PTR DS:[407038]
0015EF9D    DA05 50704000   FIADD DWORD PTR DS:[407050]
0015EFA3    DA05 58704000   FIADD DWORD PTR DS:[407058]
0015EFA9    DB1D 30704000   FISTP DWORD PTR DS:[407030]
0015EFAF    B8 46100000     MOV EAX,1046
0015EFB4    8B1D 30704000   MOV EBX,DWORD PTR DS:[407030]
0015EFBA    C705 30704000 1>MOV DWORD PTR DS:[407030],13
0015EFC4    3BC3            CMP EAX,EBX
0015EFC6    0F85 CB010000   JNZ <zle???>
0015EFCC    C705 50704000 0>MOV DWORD PTR DS:[407050],7
0015EFD6    DB05 44704000   FILD DWORD PTR DS:[407044]
0015EFDC    DA05 48704000   FIADD DWORD PTR DS:[407048]
0015EFE2    DB1D 28704000   FISTP DWORD PTR DS:[407028]
0015EFE8    DB05 30704000   FILD DWORD PTR DS:[407030]
0015EFEE    DA0D 1C704000   FIMUL DWORD PTR DS:[40701C]
0015EFF4    DB1D 60704000   FISTP DWORD PTR DS:[407060]
0015EFFA    DB05 14704000   FILD DWORD PTR DS:[407014]
0015F000    DA0D 30704000   FIMUL DWORD PTR DS:[407030]
0015F006    DB1D 44704000   FISTP DWORD PTR DS:[407044]
0015F00C    DB05 30704000   FILD DWORD PTR DS:[407030]
0015F012    DA0D 08704000   FIMUL DWORD PTR DS:[407008]
0015F018    DA05 24704000   FIADD DWORD PTR DS:[407024]
0015F01E    DB1D 48704000   FISTP DWORD PTR DS:[407048]
0015F024    DB05 50704000   FILD DWORD PTR DS:[407050]
0015F02A    DA0D 0C704000   FIMUL DWORD PTR DS:[40700C]
0015F030    DB1D 58704000   FISTP DWORD PTR DS:[407058]
0015F036    DB05 50704000   FILD DWORD PTR DS:[407050]
0015F03C    DA0D 00704000   FIMUL DWORD PTR DS:[407000]
0015F042    DA05 2C704000   FIADD DWORD PTR DS:[40702C]
0015F048    DA05 34704000   FIADD DWORD PTR DS:[407034]
0015F04E    DA05 5C704000   FIADD DWORD PTR DS:[40705C]
0015F054    DB1D 38704000   FISTP DWORD PTR DS:[407038]
0015F05A    DB05 1C704000   FILD DWORD PTR DS:[40701C]
0015F060    DA0D 50704000   FIMUL DWORD PTR DS:[407050]
0015F066    C705 5C704000 0>MOV DWORD PTR DS:[40705C],0D
0015F070    DB1D 24704000   FISTP DWORD PTR DS:[407024]
0015F076    DB05 40704000   FILD DWORD PTR DS:[407040]
0015F07C    DA05 58704000   FIADD DWORD PTR DS:[407058]
0015F082    DB1D 2C704000   FISTP DWORD PTR DS:[40702C]
0015F088    DB05 14704000   FILD DWORD PTR DS:[407014]
0015F08E    DA05 24704000   FIADD DWORD PTR DS:[407024]
0015F094    DA05 3C704000   FIADD DWORD PTR DS:[40703C]
0015F09A    DA05 48704000   FIADD DWORD PTR DS:[407048]
0015F0A0    DA05 14704000   FIADD DWORD PTR DS:[407014]
0015F0A6    C705 00704000 0>MOV DWORD PTR DS:[407000],5
0015F0B0    DA05 14704000   FIADD DWORD PTR DS:[407014]
0015F0B6    DB1D 1C704000   FISTP DWORD PTR DS:[40701C]
0015F0BC    DB05 20704000   FILD DWORD PTR DS:[407020]
0015F0C2    DA0D 00704000   FIMUL DWORD PTR DS:[407000]
0015F0C8    DB1D 20704000   FISTP DWORD PTR DS:[407020]
0015F0CE    DB05 04704000   FILD DWORD PTR DS:[407004]
0015F0D4    DA05 04704000   FIADD DWORD PTR DS:[407004]
0015F0DA    DA05 04704000   FIADD DWORD PTR DS:[407004]
0015F0E0    C705 58704000 1>MOV DWORD PTR DS:[407058],11
0015F0EA    DB1D 04704000   FISTP DWORD PTR DS:[407004]
0015F0F0    8B1D 1C704000   MOV EBX,DWORD PTR DS:[40701C]
0015F0F6    B8 A20A0000     MOV EAX,0AA2
0015F0FB    3BC3            CMP EAX,EBX
0015F0FD    DB05 38704000   FILD DWORD PTR DS:[407038]
0015F103    DA05 20704000   FIADD DWORD PTR DS:[407020]
0015F109    DB1D 20704000   FISTP DWORD PTR DS:[407020]
0015F10F    A1 20704000     MOV EAX,DWORD PTR DS:[407020]
0015F114    BB 3F120000     MOV EBX,123F
0015F119    3BC3            CMP EAX,EBX
0015F11B    75 7A           JNZ SHORT <zle???>
0015F11D    DB05 54704000   FILD DWORD PTR DS:[407054]
0015F123    DA0D 14704000   FIMUL DWORD PTR DS:[407014]
0015F129    DA05 60704000   FIADD DWORD PTR DS:[407060]
0015F12F    DA05 04704000   FIADD DWORD PTR DS:[407004]
0015F135    DA05 2C704000   FIADD DWORD PTR DS:[40702C]
0015F13B    DB1D 24704000   FISTP DWORD PTR DS:[407024]
0015F141    A1 24704000     MOV EAX,DWORD PTR DS:[407024]
0015F146    BB 710D0000     MOV EBX,0D71
0015F14B    3BC3            CMP EAX,EBX
0015F14D    DB05 58704000   FILD DWORD PTR DS:[407058]
0015F153    DA0D 10704000   FIMUL DWORD PTR DS:[407010]
0015F159    DB1D 24704000   FISTP DWORD PTR DS:[407024]
0015F15F    DB05 5C704000   FILD DWORD PTR DS:[40705C]
0015F165    DA0D 0C704000   FIMUL DWORD PTR DS:[40700C]
0015F16B    DA05 24704000   FIADD DWORD PTR DS:[407024]
0015F171    DA05 28704000   FIADD DWORD PTR DS:[407028]
0015F177    DA05 44704000   FIADD DWORD PTR DS:[407044]
0015F17D    DB1D 24704000   FISTP DWORD PTR DS:[407024]
0015F183    B8 AF0F0000     MOV EAX,0FAF
0015F188    8B1D 24704000   MOV EBX,DWORD PTR DS:[407024]
0015F18E    3BC3            CMP EAX,EBX
0015F190    75 05           JNZ SHORT <zle???>
0015F192    33C0            XOR EAX,EAX
0015F194    40              INC EAX
0015F195    EB 02           JMP SHORT 0015F199
0015F197 >  33C0            XOR EAX,EAX
0015F199    8B1D 64704000   MOV EBX,DWORD PTR DS:[407064]
0015F19F    806424 09 FE    AND BYTE PTR SS:[ESP+9],0FE
0015F1A4    CF              IRETD

W dodatku niestety, musimy go przeanalizowa.
Kod po sprawdza zakres znakw ktorych musi tylko 9 znakw od A-Z i od 0-9 i przypisuje kazdemu znakowi okrelony bajt. Pniej na tych bajtach, wykonuje straszliw mielonke instrukcjami koprocesora po czym sprawdza jesli sumy si zgadzaj wykonuje drug czec mielonki, po drodze wykonujc jeszcze kilka checkw. jesli si nie zgadza w eax jest 0,jeli wszystko sie zgadza w eax jest jeden. POtem program wraca z przerwania i testuje eax.

00401333      85C0          TEST EAX,EAX
00401335      75 15         JNZ SHORT breakme.0040134C
00401337      6A 00         PUSH 0
00401339      68 8D804000   PUSH breakme.0040808D                    ;  ASCII "BreakMe by K3310pH ^ CookieCrK"
0040133E  |.  68 DB804000   PUSH breakme.004080DB                    ; |Text = "Can't beat it! Try again"
00401343  |.  6A 00         PUSH 0                                   ; |hOwner = NULL
00401345  |.  E8 EA0C0000   CALL <JMP.&USER32.MessageBoxA>           ; \MessageBoxA
0040134A  |.  EB 36         JMP SHORT breakme.00401382
0040134C  |>  6A 00         PUSH 0                                   ; /Style = MB_OK|MB_APPLMODAL
0040134E  |.  68 8D804000   PUSH breakme.0040808D                    ; |Title = "BreakMe by K3310pH ^ CookieCrK"
00401353  |.  68 AC804000   PUSH breakme.004080AC                    ; |Text = "Rox, you did it... wait for the next challenge"
00401358  |.  6A 00         PUSH 0                                   ; |hOwner = NULL
0040135A  |.  E8 D50C0000   CALL <JMP.&USER32.MessageBoxA>           ; \MessageBoxA

Jesli w eax jest 1, to GOODBOY, jeli 0 to BADBOY.
W przypadku zamkniecia programu zostaj przywrcone orginalne wektory przerwa, co jednak rzadko si zdarza, bo jesli kto debuguje tego cma to zmieniony wektor int 1 powiesi mu system i crackmes w ogle nie zostanie zamkniety :-)).

Ale wracajc do kodu. jest on mczcy, ale po przeanalizowaniu go krok po kroku, mozna dojc do pewnych wnioskw. Ja zrobiem sobie w excelu tabelke zmieniajcych sie komrek pamieci i stosu koprocesora. Ostatecznie wystarczy przeanalizowa pierwsza cze kodu do pierwszych chceckw, ale ja analizowaem cay, bo myslaem e dalej bdzie wiecej podpowiedzi.

kady z bajtw przypisany znakw nazwalem odpowiednio 1z,2z,3z itd. i co si okazalo:



FF94BC2A=((((((3+34)*5z)+4z)-5z)-((((((1z*1z)+4z)-5z)*6z)+7)*34))+(((((7z*9z)+2z)-35)*7)+3z)) <---------brakuje 8 znaku

FFFF8C4A=(((4z*2z)+(3z*0f))+(((((((2z+9z)*1d)-7z)-(1z*0f))*8z)+5z)+(((20-(((1z+59)*4z)-18))+5z)+5z)))

43C2=(((((((((9z*3z)-1z)+0c)*3)+8z)*6)+6z)-(((((8z*2z)+20)*3)+3z)+8))+(((4z*0c)+5z)*8z))

FFFFBAD5=(((((((3z+2z)*7z)-0b)+9z)*6z)-1z)-((((((2z+4z)*8)+7z)-4z)*5z)+6z))			<------ brakuje 8 znaku

Checkw jest wicej ale tylko w tych nie zostao uzyte wszystkie 9 znakw. Poniewa nie byo innego wyjscia,jak brute force, staraem si zminimalizowac liczb znakw do odgadnicia (szukanie wszystkich 9 znakw trwao by w nieskonczono)
Kazde z tyxcg rwnan jest zoone z 8 znakw, ale osiem znakow to te byo troche za duo. Na szczecie w dch z tych rwna brakowao 8 znaku, wic wydzielilem 9 znak, przyrwnaem stronami i ju zostao tylko pierwsze 7 znakw do brutforce. rda tego brutforce nie zaczam, bo okazao si e co le musiaem policzy, poniewa nie da poprawnego wyniku ;-). Wic musiaem wrci do wersji brutforce 8 znakwego. Zripowaem sobie wiec cay ten kod. I zostawiem te 2 checki, ktre nie sprawdzay 8 znaku sprawdzay i uzyem szablonu brutforce by mansun ze strony ICT. NO i postanowilem uzbroi si w cieprliwoc. Jednak po paru dniach cierpliwoci rozozyem cay szukany zakres na 3 komputery :pierwszy od AAAAAAA, drugi od AAAAAAO i trzeci od AAAAAA0. I to by ut szczcia bo ten trzeci da wynik (a normalnie czeka bym jeszcze z miesi ;-)). zrda tego brutforce i plik z zakresem zaaczam ,kady moze sobie sam sprawdzi. Majc wszystkie znaki poza smym ,brakujacego mozna bylo si domysle.
A pass brzmi "PRICKZER0".


Fajne crackme Juz nawet nie pamietam jak dugo sie nad nim mczyem....

I to by byo na tyle.........













